import { defineStore } from 'pinia'
import { ref } from 'vue'
import { getUserInfoAPI } from '@/api/user'

export const useUserStore = defineStore(
  'user',
  () => {
    const token = ref('')
    // 存储token
    const setToken = (newToken) => {
      token.value = newToken
    }
    // 删除token
    const removeToken = () => {
      token.value = ''
    }

    // 用户个人信息
    const userInfo = ref({})

    // 获取个人信息
    const getUserInfo = async () => {
      const res = await getUserInfoAPI()

      userInfo.value = res.data.data
      return res.data.data
    }
    // 删除个人信息
    const removeUserInfo = () => {
      userInfo.value = {}
    }
    // 修改个人信息
    const updateUserInfo = async (data) => {
      userInfo.value = { ...userInfo.value, ...data }
    }

    return {
      token,
      setToken,
      removeToken,
      userInfo,
      getUserInfo,
      removeUserInfo,
      updateUserInfo
    }
  },
  {
    persist: true // 开启数据持久化
  }
)
